Euler Problem 30

Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits:

$$1634 = 1^4 + 6^4 + 3^4 + 4^4$$$$8208 = 8^4 + 2^4 + 0^4 + 8^4$$$$9474 = 9^4 + 4^4 + 7^4 + 4^4$$

As $1 = 1^4$ is not a sum it is not included.

The sum of these numbers is 1634 + 8208 + 9474 = 19316.

Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.


In [2]:
pow = [d**5 for d in range(10)]
print(sum(k for k in range(2,10**6)
          if sum(pow[d] for d in map(int, str(k))) == k))


443839

Explanation: If the number $N$ has $d$ digits, then $10^{d-1} \le N < 10^d$ and the sum of the fifth powers of the digits of $N$ is at most $9^5 d$. Therefore, if the sum of fifth powers of the digits of $N$ is equal to $N$, then $10^{d-1} \le 9^5 d$, which implies that $d \le 6$. Hence we need only check $N \le 10^6$.